#!/usr/bin/env python
# -*-coding: utf-8 -*-
# Filename: funciones_utiles.py

##
# Módulos del sistema
# Parte gráfica
try:
    import pygtk
    pygtk.require("2.0")
    import gtk
    import gtk.glade
except ImportError, error:
    print error
    print "Necesitas la librería gráficas gtk+pygtk"

from gui.msj_retroalimentacion import MensajeDeError, MensajeDeAdvertencia

# Vistas
def add_find_column(title, columnId, tree):
    """Esta funcion agrega una columna al resultado de la búsqueda """
    column = gtk.TreeViewColumn(title, gtk.CellRendererText(),
                text=columnId)
    column.set_resizable(True)
    column.set_sort_column_id(columnId)
    tree.append_column(column)

# Cancelacion de la operacion
def close(window):
    """Cancelación de la operación.

    Se mostrará un mensaje de retroalimentación de advertencia, para
    consultar al usuario si realmente es lo que desea.
    """
    print "Operacion de registro de ticket fue cancelada"
    texto = "¿Esta seguro que desea cancelar la operación?"
    msj = MensajeDeAdvertencia(texto, window)
    if msj.msj.run() == gtk.RESPONSE_YES:
        window.destroy()
    else:
        "No quiero cancelar la operacion."
        msj.msj.destroy()

# Combos
def armar_combo(informacion, combo, lista):
    """Armara el combo que se llame. Añadiendo el dato en el combo y el objeto
    en la lista"""
    for dato in informacion:
        combo.append_text(dato.nombre)
        lista.append(dato)
    combo.set_active(0)

# Descripcion u observacion de un testarea válidas
def descripcion_valida(area_texto):
    obs = area_texto.get_buffer()
    start = obs.get_start_iter()
    end = obs.get_end_iter()
    if obs.get_text(start, end):
        return obs.get_text(start, end)
    else:
        return ''    
